Micron Document




GNU Core Utilities
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
The GNU Core Utilities or coreutils is a collection of GNU software that implements many standard, Unix-based shell commands. The utilities generally provide POSIX compliant interface when the POSIXLY_CORRECT environment variable is set, but otherwise offers a superset to the standard interface. For example, the utilities support long options and options after parameters. This environment variable enables a different functionality in BSD.

Similar collections are available in the FOSS ecosystem, with a slightly different scope and focus (less functionality), or license. For example, BusyBox which is licensed under GPL-2.0-only, and Toybox which is licensed under 0BSD.

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Commands

The commands implemented by coreutils are listed below. Throughout this article and customary for Unix-based systems, the term file refers to all file system items including regular files and special files such as directories.

File utilities

chcon – Changes file security context (SELinux)
chgrp – Changes file group ownership
chown – Changes file user ownership
chmod – Changes file permissions
cp – Copies files
dd – Copies and converts file data
df – Reports file system free space
dir – Like ls -C -b; by default lists files in columns, sorted vertically
dircolors – Configures colors used for ls output
install – Copies files and sets file attributes
ln – Creates a link to a file
ls – Lists files
mkdir – Creates directories
mkfifo – Creates named pipes (FIFOs)
mktemp – Creates temporary regular files or directories
mv – Moves and renames files
realpath – Reports the absolute or relative path of a file
rm – Deletes files
rmdir – Deletes empty directories
shred – Overwrites a file to hide its contents and optionally deletes it
sync – Flushes file system buffers
touch – Changes file timestamps; creating files if they do not exist
truncate – Sets the size of a file via truncation or extension
vdir – Like ls -l -b; by default lists files in long format

Text utilities

b2sum – Computes and checks BLAKE2b message digest
base32 – Encodes or decodes base32
base64 – Encodes or decodes base64
basenc – Encodes or decodes various encodings including hexadecimal, base32, base64, and Z85
cat – Concatenates files
cksum – Report or compute the checksum of files
comm – Compares two sorted files line by line
csplit – Splits a file into sections determined by context lines
cut – Removes sections from each line of files
expand – Converts tabs to spaces
fmt – Formats text
fold – Wraps each input line to fit in specified width
head – Outputs the first part of files
join – Joins lines of two files on a common field
md5sum – Computes and checks MD5 message digest
nl – Numbers lines of files
numfmt – Formats numbers
od – Dumps files in octal and other formats
paste – Merges lines of files
ptx – Produces a permuted index of file contents
pr – Paginates or columnates files
sha1sum, sha224sum, sha256sum, sha384sum, sha512sum – Computes and checks SHA-1/SHA-2 message digests
shuf – Generates random permutations
sort – Sorts lines of text files
split – Splits a file into pieces
sum – Checksums and counts the blocks in a file
tac – Concatenates files in reverse order; line by line
tail – Outputs the last part of files
tr – Translates or deletes characters
tsort – Performs a topological sort
unexpand – Converts spaces to tabs
uniq – Removes duplicate lines from a sorted file
wc – Reports the number of bytes, words, and lines in files

Shell utilities

arch – Reports machine hardware name; same as uname -m
basename – Removes the path prefix from a given pathname
chroot – Changes the root directory
date – Reports or sets the system date and time
dirname – Strips non-directory suffix from file name
du – Shows disk usage on file systems
echo – Outputs text
env – Reports and modifies environment variables
expr – Evaluates expressions
false – Does nothing but exit with unsuccessful status
groups – Reports the groups of which the user is a member
hostid – Reports the numeric identifier for the current host
id – Reports the real or effective UID and GID
link – Creates a link to a file
logname – Reports the user's login name
nice – Modifies scheduling priority
nohup – Allows a command to continue running after logging out
nproc – Queries the number of (active) processors
pathchk – Checks whether file names are valid or portable
pinky – A lightweight version of finger
printf – Formats text
pwd – Reports the current working directory
readlink – Reports the value of a symbolic link
runcon – Run command with specified security context
seq – Reports a sequence of numbers
sleep – Blocks (delays, waits) for a specified amount of time
stat – Reports information about an inode
stdbuf – Runs a command with custom standard streams configuration
stty – Changes and reports terminal line settings
tee – Sends output to multiple files
test – Evaluates an expression
timeout – Runs a command with a time limit
true – Does nothing but exit with success status
tty – Reports the terminal name
uname – Reports system information
unlink – Removes files via unlink() function
uptime – Reports how long the system has been running
users – Reports the user names of users currently logged into the current host
who – Reports logged-in users
whoami – Reports the effective userid
yes – Outputs a string repeatedly
[ – Synonym for test that enables expressions like [ expression ]

History

In 1990, David MacKenzie announced GNU fileutils.cite-ref-3[3]

In 1991, MacKenzie announced GNU shellutils and GNU textutils.cite-ref-4[4]cite-ref-5[5] Moreover, Jim Meyering became the maintainer of the packages (known now as coreutils) and has remained so since.cite-ref-6[6]

In September 2002, the GNU coreutils were created by merging the earlier packages textutils, shellutils, and fileutils, along with some other miscellaneous utilities.cite-ref-merge-7-0[7]

In July 2007, the license of the GNU coreutils was updated from GPL-2.0-or-later to GPL-3.0-or-later.cite-ref-8[8]

See also

GNOME Core Applications – Software applications built with the GNOME philosophy in mind
GNU Binutils – GNU software development tools for executable code
List of KDE applications – Set of applications and supporting librariesPages displaying short descriptions of redirect targets
Toybox – Collection of Unix tools in single executable file
Unix philosophy – Software development philosophy
util-linux – Package of Linux utilities from the Linux Kernel Organization

References

cite-note-wikidata-159b59e800f29beac91a97aa5eccaeaaf22dea06-v20-11. citerefp-draig-brady2025Pádraig Brady (9 April 2025). "coreutils-9.7 released [stable]". Retrieved 9 April 2025.
cite-note-22. "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". Archived from the original on 2019-03-28. Retrieved 2019-03-28.
cite-note-33. "GNU file utilities release 1.0". groups.google.com.
cite-note-44. "GNU shell programming utilities released". groups.google.com.
cite-note-55. "new GNU file and text utilities released". groups.google.com.
cite-note-66. "GNU's Who".
cite-note-merge-77. citerefmeyering2003Meyering, Jim (2003-01-13). "README-package-renamed-to-coreutils". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
cite-note-88. citerefmeyering2007Meyering, Jim (2007-07-23). "COPYING: Update to Version 3". Archived from the original on 2019-12-25. Retrieved 2018-08-15.

External links

The Wikibook

Guide to UNIX

has a page on the topic of:

Commands

• Official website
• Manual
• README
• The Heirloom Toolchest - An alternative set of utilities
• opensource.com article: gnu-core-utilities on 4 Apr 2018 by David Both (Correspondent)
• Rosetta Stone For *Nix – configurable list of equivalent programs for *nix systems.
• The Unix Acronym List – explains the names of many Unix commands.
• The UNIX System Homepage